package br.com.fox.iebav.session;

import java.io.Serializable;
import java.util.Map;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;

import org.primefaces.context.RequestContext;

import br.com.fox.iebav.controller.command.LogarAreaRestrita;
import br.com.fox.iebav.controller.command.LogarResponsavelEmpresa;
import br.com.fox.iebav.entity.Responsavelempresa;
import br.com.fox.iebav.entity.Usuarios;
import br.com.fox.iebav.session.abstractsession.AbstractSession;

@Named("autenticacaoResponsavelEmpresaBeanSession")
@SessionScoped
public class AutenticacaoResponsavelEmpresaBeanSession extends AbstractSession implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
//	ATRIBUTOS
	private Responsavelempresa responsavelEmpresaLogado;
	private String login,senha;
	private Boolean responsavelEmpresaAutenticado;
	
//	CONTROLLER COMMAND
	private @EJB LogarResponsavelEmpresa logarResponsavelEmpresa;
	private Map<String, Object> resultMap;
	
	@PostConstruct
	public void init()
	{
		setResponsavelEmpresaLogado(new Responsavelempresa());
		setResponsavelEmpresaAutenticado(false);
	}
	
	public void logarSistema()
	{		
		resultMap = executarComando(logarResponsavelEmpresa, responsavelEmpresaLogado);
		setResponsavelEmpresaLogado( (Responsavelempresa)resultMap.get("responsavelEmpresa") );
		
	 	if( ((Boolean)resultMap.get("resultado")) )
	 	{
	 		//logado
	 		setResponsavelEmpresaAutenticado(true);
	 		redirecionarURL("dadosResponsavelEmpresa.java");
	 	}
	 	else
	 	{
	 		//n logado
	 		init();
	 		facesMensagens(FacesMessage.SEVERITY_ERROR, resultMap.get("mensagem").toString(), "" );
	 		getResponsavelEmpresaLogado().setCpf("");
	 		getResponsavelEmpresaLogado().setSenha("");
	 	}
	}
	
	public void sairSistema()
	{
		init();
		redirecionarURL("index.html");
	}

	public Responsavelempresa getResponsavelEmpresaLogado() {
		return responsavelEmpresaLogado;
	}

	public void setResponsavelEmpresaLogado(
			Responsavelempresa responsavelEmpresaLogado) {
		this.responsavelEmpresaLogado = responsavelEmpresaLogado;
	}

	public Boolean getResponsavelEmpresaAutenticado() {
		return responsavelEmpresaAutenticado;
	}

	public void setResponsavelEmpresaAutenticado(
			Boolean responsavelEmpresaAutenticado) {
		this.responsavelEmpresaAutenticado = responsavelEmpresaAutenticado;
	}

	public String getLogin() {
		return login;
	}

	public String getSenha() {
		return senha;
	}

		
}
